One-loop off-shell massless vertex

Finding reduction rules and saving

Initialization

<<LiteRed`;(*Loading the package*)
SetDirectory[NotebookDirectory[]];
(*Setting working directory*)
SetDim[d];(*d stands for the dimensionality*)
Declare[{l,p,q},Vector];(*vector variables*)

Defining the basis, searching for the symmetries & reduction rules

NewBasis[v1,{l,p-l,q+l},{l},Directory->"v1 dir"]
(*Basis definition. A vector in the second argument is a shortcut for massles propagator, e.g. p-l shortcuts sp[p-l,p-l], third option is the directory where all definitions for the basis are saved*)
GenerateIBP[v1](*IBP generation. Can be also invoked by passing GenerateIBP->True option in NewBasis call*)
AnalyzeSectors[v1](*Zero and simple sectors determination. Can be also invoked by passing AnalyzeSectors->True option in NewBasis call.*)
FindSymmetries[v1](*Finding unique and mapped sectors. Can be also invoked by passing FindSymmetries->True option in NewBasis call.*)

SolvejSector/@UniqueSectors[v1](*Solving IBP identities for unique sectors.*)

DiskSave[v1](*Saving to default directory.*)
Quit[](*Quitting the kernel*)

Loading the basis and reducing

Initialization

<<LiteRed`;(*Loading the package*)
SetDirectory[NotebookDirectory[]];
(*Setting working directory*)
SetDim[d];(*d stands for the dimensionality*)
Declare[{l,p,q},Vector];(*vector variables*)
<<"v1 dir/v1";(*Load the basis*)

Reduction

IBPReduce[j[v1,1,2,3]+j[v1,3,2,1]](*reduction of the general linear combination of j[…]*)

Differentiation: Dinv[j[v1,1,1,1],sp[p,q]]  stands for (∂/(∂(p·q)))j[v1,1,1,1]

Collectj[IBPReduce[Dinv[j[v1,1,1,1],p·q]]/.{p·p->((Subscript[m, 1])^2),q·q->((Subscript[m, 2])^2),p·q->(((Subscript[m, 3])^2)-((Subscript[m, 1])^2)-((Subscript[m, 2])^2))/2},Factor]

Dimensional Recurrences.
 LoweringDRR[v1,1,1,1] (RaisingDRR[v1,1,1,1]) gives the right-hand side of the lowering (raising) recurrence relation for j[v1,1,1,1]

Collectj[IBPReduce[LoweringDRR[v1,1,1,1]]/.{p·p->((Subscript[m, 1])^2),q·q->((Subscript[m, 2])^2),p·q->(((Subscript[m, 3])^2)-((Subscript[m, 1])^2)-((Subscript[m, 2])^2))/2},Factor]

Collectj[IBPReduce[RaisingDRR[v1,1,1,1]]/.{p·p->((Subscript[m, 1])^2),q·q->((Subscript[m, 2])^2),p·q->(((Subscript[m, 3])^2)-((Subscript[m, 1])^2)-((Subscript[m, 2])^2))/2},Factor]